package com.learn.db;

import com.learn.util.prop.Prop;
import com.learn.util.prop.PropKit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

import java.sql.*;

/**
 * 功能：使用 JDBC 连接 MySQL 数据库
 * 方式一：
 *
 * @author wsh
 * @date 2021/1/21
 */
public class JdbcUtil {
    private static Logger logger = LoggerFactory.getLogger(JdbcUtil.class);

    /**
     * 读取数据源配置文件
     */
    private static Prop datasourceProp = PropKit.use("datasource.properties");
    /**
     * 数据库驱动、url、账号、密码
     */
    private static String driverClass = datasourceProp.get("jdbc.driverClass");
    private static String url = datasourceProp.get("jdbc.url");
    private static String username = datasourceProp.get("jdbc.username");
    private static String password = datasourceProp.get("jdbc.password");

    /**
     * 数据库连接
     */
    public static Connection connection = null;

    /**
     * 功能：得到数据库连接
     *
     * @return
     * @author wsh
     * @date 2021/1/21
     */
    public static Connection getConnection() {
        try {
            // 加载数据库驱动类
            Class.forName(driverClass);
            // 获取数据库连接对象
            connection = DriverManager.getConnection(url, username, password);
            logger.info("数据库连接获取成功...");
            return connection;
        } catch (ClassNotFoundException | SQLException e) {
            logger.error("数据库连接获取失败...");
            e.printStackTrace();
        } finally {
        }

        return null;
    }
    /**
     * 功能：关闭数据库连接
     *
     * @return
     * @author wsh
     * @date 2021/1/21
     */
    public static void closeConnection() {
        if (null != connection) {
            try {
                connection.close();
                logger.info("数据库连接关闭成功.");
            } catch (SQLException e) {
                logger.error("数据库连接关闭失败...");
                e.printStackTrace();
            }
        }
    }
}
